var ws = require("nodejs-websocket")
let table_num = 0
// 创建server服务
var server = ws.createServer(connect => {
    // 获取用户名
    table_num++
    connect.user_name = `hjj${table_num}`
    connect.color = getRedomColor()
    // 第一次接入websocket，并给用户返回信息
    const msg = `<p style='color:#ffe0e6;'>欢迎新用户<span style='color:${connect.color};'>${connect.user_name}：</span>进入聊天室！</p>`
    // 广播消息
    broadCast(msg)
    // 监听用户发送信息时
	connect.on("text", function (str) {
		console.log("收到信息： "+str)
    const msg = `<span style='color:${connect.color};'>${connect.user_name}：</span>${str}`
    // 广播消息
    broadCast(msg)
    })
    // 监听用户离开，或关闭
	connect.on("close", function (code, reason) {
    console.log('用户离开')
    const msg = `<p style='color:#ff9b9b;'>用户<span style='color:${connect.color};'>${connect.user_name}：</span>离开了聊天室！</p>`
    // 广播消息
    broadCast(msg)
    table_num--
    })
    // 监听页面异常，对异常进行处理
    connect.on("error", function(err){
        console.log('请求异常！');
    })
}).listen(8003, () => {
  console.log("服务已经运行在：ws://localhost:8003")
})

// 广播消息给所有用户
function broadCast(msg){
  server.connections.forEach(item => {
    item.sendText(msg)
  })
}

// 设置随机颜色
function getRedomColor(){
  const red = Math.floor(Math.random()*256)
  const green = Math.floor(Math.random()*256)
  const blue = Math.floor(Math.random()*256)
  return `rgb(${red},${green},${blue})`
}